草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - 使用 malloc() 为 const char 字符串动态分配内存

我正在编写一个程序,它从.ini文件中读取一个值,然后将该值传递给一个接受PCSTR(即constchar*)的函数。函数是getaddrinfo()。所以,我想写PCSTRReadFromIni()。要返回常量字符串,我计划使用malloc()分配内存并将内存转换为常量字符串。我将能够获得从.ini文件中读取的确切字符数。这种技术可以吗?我真的不知道还能做什么。以下示例在VisualStudio2013中运行良好,并根据需要打印出“hello”。constchar*m(){char*c=(char*)malloc(6*sizeof(char));c="hello";return(co

c++ - 如何将 char 数组定义为常量?

这里是C/C++菜鸟。我已经在头文件中定义了它...typedefunsignedcharBitChar[9];//8databytes(chars)andonewidthbyte(char)externBitCharBitFont[];我把它放在一个cpp文件中...BitCharBitFont[]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,2,//32-SpaceB10000000,B10000000,B10000000,B10000000,B10000000,B

c++ - 有没有更快的方法在 SIMD 上乘以 2(不使用乘法)?

旧float的一个技巧是从不乘以2,而是将操作数与自身相加,如2*a=a+a。今天,使用SSE/SSE2/SSSE3/NEON/...指令集等的旧技巧是否仍然可行?我的操作数是一个vector(比如,4个float,我想乘以2)。乘以3、4...怎么样? 最佳答案 我仍在努力寻找一个例子来说明这会在哪些方面有所作为。我的直觉是,如果延迟是一个问题,那么在某些情况下x+x会更好,但如果延迟不是问题并且只有吞吐量很重要,那么它可能会更糟。但首先让我们讨论一些硬件。让我坚持使用Intelx86处理器,因为这是我最了解的。让我们考虑以下几代

c++ - 这是指向指针的指针吗?

考虑以下结构声明:typedefstruct{UINT8HdrLength:4;UINT8Version:4;UINT8TOS;UINT16Length;UINT16Id;UINT16FragOff0;UINT8TTL;UINT8Protocol;UINT16Checksum;UINT32SrcAddr;UINT32DstAddr;}WINDIVERT_IPHDR,*PWINDIVERT_IPHDR;最后声明的“*PWINDIVERT_IPHDR”,我以前从未见过。它似乎只是WINDIVERT_IPHDR结构的指针类型声明。我的假设正确吗?如果是,这段代码会不会:externBOOLW

c++ - 编译器是否能够优化意大利面条代码?

我正在编写一个在最后生成C++代码的编译器,我不能使用while\for或任何其他正常循环,所以我将它转换为goto\if和这样的分配\调用行:if(i这看起来真的很痛苦,但是GCC编译器可以像上面那样编译和优化代码,就像它由普通循环等组成一样吗? 最佳答案 编译器通过流程图分析优化程序控制流,从编译器的角度来看,在该级别使用goto而不是if分支实际上是等效的。需要牢记的一个警告:如果生成器生成irreduciblecontrolflowgraphs,因为gotos几乎可以在函数的任何地方跳转,这肯定会影响编译器的优化能力。

c++ - 无法在 OpenGL C++ 中渲染三角形

我试着关注thisC中的OpenGL教程,但是当谈到第二个教程时,应该在窗口上绘制三角形的教程,我什么也看不到。所以这就是我所做的,我采用了创建OpenGL上下文、窗口和其他东西的代码,并试图使其更简单:我尝试使用glBegin/glEnd而不是使用VAO。我收到此错误:1282“无效操作”。我只是使用直接来self的LWJGL项目的相同句子。主循环非常简单,我不明白它为什么不起作用,而且1282错误没有给我任何信息。为什么我仍然收到错误消息?#include#include#pragmacomment(lib,"glfw3.lib")#pragmacomment(lib,"glew3

c++ - 在 C/C++ 中声明变量

有人告诉我:“声明接近其使用的变量是有值(value)的”。他纠正我:voidstudent_score(size_tstudent_list_size){//intexam;//intaverage;//intdigit;//intcounter_digits;for(size_ti=0;i我认为这很糟糕,因为这里的变量在每个循环中都进行了初始化。什么是真的? 最佳答案 我鼓励尽可能在局部范围内声明它们,并尽可能接近首次使用。这使得读者更容易找到声明并查看变量是什么类型以及它被初始化为什么。当然,编译器会对其进行优化。

c++ - C/C++ 中的任意大小的整数

问题有没有办法使用c/c++创建任意大小的整数?例如:intmain(void){Inti=Int(3);//3-bitintegeri=1;//Representedas:001}奖金有没有办法对float值做同样的事情? 最佳答案 您不能创建大小小于char的整数(也就是说,每个对象的字节大小是sizeof(char)的倍数,即1).但这不是问题,因为您可以将数字打包成更大的数字。constunsignedsize_in_bits=3;unsigneda=1;//001unsignedb=5;//101unsignedpacke

c++ - CPU 内部并行化

我一直在研究Xorshift*随机数生成器,我遇到了this探索它们的属性。从该站点引用(强调我的):Howcanaxorshift64*generatorbeslowerthanaxorshift1024*generator?Dependencies.Thethreexor/shiftsofaxorshift64*generatormustbeexecutedsequentially,aseachoneisdependentontheresultofthepreviousone.Inaxorshift1024*generatortwoofthexor/shiftsarecomplet

c++ - 如果线程在调用 pthread_join 之前退出怎么办

我有一个小代码void*PrintHello(void*threadid){cout我会在创建后的某个时间加入线程。如果main试图加入一个已经退出的线程,会发生什么? 最佳答案 Whatwillhappenifthemaintriestojoinathreadwhichalreadyexited?连接操作将立即完成并返回。 关于c++-如果线程在调用pthread_join之前退出怎么办,我们在StackOverflow上找到一个类似的问题: https:/